home *** CD-ROM | disk | FTP | other *** search
/ Amiga Games: Greatest Hits 1996 / Amiga Games: Greatest Hits 1996.iso / rexx / savesprites.agaiff < prev    next >
Text File  |  1995-04-23  |  2KB  |  74 lines

  1. /* SaveSprites.agaiff
  2.  *
  3.  * Saves as many 16 pixels wide sprites as needed to build up a sprite logo
  4.  * with the selected range width, that means if you want to display sprite
  5.  * gfx with 48 pixels width on the old chipset, you NORMALLY need to save
  6.  * 3 sprites on your own...
  7.  */
  8.  
  9. lf = "a"X   /* Linefeed character */
  10.  
  11. address "AGAIFF_REXX"
  12. options results
  13.  
  14. SHOWGUI
  15. if RC ~= 0 then exit
  16.  
  17. STATUS 0
  18. if result = "" then do
  19.    TYPETEXT "No picture loaded..."
  20.    exit
  21. end
  22.  
  23. /* Get picture data */
  24. STATUS 3
  25. parse var result RangeX1 RangeY1 RangeX2 RangeY2
  26. STATUS 2
  27. parse var result Depth
  28.  
  29. Height = RangeY2-RangeY1+1
  30. Width = RangeX2-RangeX1+1
  31. NumberOfSprites = (Width+15)%16
  32.  
  33. select
  34.    when Depth=2 then do
  35.       if NumberOfSprites>8 then do
  36.          TYPETEXT "Maximum range (2 planes) is 8 sprites (128 pixels)"
  37.          exit
  38.       end
  39.    end
  40.    when Depth=4 then do
  41.       if NumberOfSprites>4 then do
  42.          TYPETEXT "Maximum range (4 planes) is 4 sprites (64 pixels)"
  43.          exit
  44.       end
  45.    end
  46.    otherwise do
  47.       TYPETEXT "2 or 4 planes please !"
  48.       exit
  49.    end
  50. end
  51.  
  52. SETPRESET "Sprite dc."
  53. REQUEST "Save as assembler source (OK)" || lf || "or data file (CANCEL) ?"
  54. if RC = 0 then SFORMAT FILE
  55. REQUESTFILE "Save filename w/ suffix"
  56. pathname = result
  57. if pathname = "" then exit;
  58.  
  59. NOSHOW
  60.  
  61. rx1 = RangeX1
  62.  
  63. do i=0 for NumberOfSprites
  64.    RANGE rx1 RangeY1 rx1+15 RangeY2
  65.    SAVE pathname || "." || i
  66.    rx1 = rx1 + 16
  67. end
  68.  
  69. RANGE RangeX1 RangeY1 RangeX2 RangeY2
  70. RESHOW
  71. SHOWGUI
  72.  
  73. TYPETEXT "Okidoki..."
  74.